﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.Collections;

namespace Serializacja
{
    [XmlRoot("lista")]
    public class Ludzie : IEnumerator, IEnumerable
    {
        private int _position = -1;
        [XmlArray("ludzie")]

        [XmlArrayItem("czlowiek",typeof(Czlowiek))]
        public ArrayList listaLudzi;

        public Ludzie()
        {
            listaLudzi = new ArrayList();
        }

        public int DodajCzlowieka(Czlowiek czlowiek)
        {
            return listaLudzi.Add(czlowiek);
        }
        public int Add(Object obj)
        {
            return listaLudzi.Add((Czlowiek)obj);
        }
        public IEnumerator GetEnumerator()
        {
            return (IEnumerator)this;
        }

        public object Current
        {
            get { return listaLudzi[_position]; }
        }

        public bool MoveNext()
        {
            if (_position < listaLudzi.Count - 1)
            {
                ++_position;
                return true;
            }
            return false;
        }

        public void Reset()
        {
            _position = -1;
        }
    }

    public class Czlowiek
    {
        string _imie;
        string _nazwisko;
        int _rokUrodzenia;
        public Czlowiek()
        {
            _imie = "Jan";
            _nazwisko = "Kowalski";
            _rokUrodzenia = 1970;
        }
        public Czlowiek(string imie, string nazwisko, int rokUrodzenia)
        {
            _imie = imie;
            _nazwisko = nazwisko;
            _rokUrodzenia = rokUrodzenia;
        }
        [XmlElement("imie")]
        public string Imie
        {
            get {return _imie;}
            set {_imie = value;}
        }
        [XmlElement("nazwisko")]
        public string Nazwisko
        {
            get {return _nazwisko;}
            set {_nazwisko = value;}
        }
        [XmlElement("rokUrodzenia")]
        public int RokUrodzenia
        {
            get{ return _rokUrodzenia;}
            set{ _rokUrodzenia = value;}
        }
    }
}
